package org.dromara.iot.service;

import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.iot.domain.IotElevatorOss;
import org.dromara.iot.domain.bo.IotElevatorBo;
import org.dromara.iot.domain.vo.IotElevatorVo;
import org.dromara.system.domain.vo.SysOssVo;

import java.util.Collection;
import java.util.List;

/**
 * 电梯管理Service接口
 *
 * @author LSL
 * @date 2024-06-16
 */
public interface IIotElevatorService {

    /**
     * 查询电梯管理
     */
    IotElevatorVo queryById(Long elevatorId);

    /**
     * 查询电梯管理列表
     */
    TableDataInfo<IotElevatorVo> queryPageList(IotElevatorBo bo, PageQuery pageQuery);

    /**
     * 查询电梯管理列表
     */
    List<IotElevatorVo> queryList(IotElevatorBo bo);

    /**
     * 新增电梯管理
     */
    Boolean insertByBo(IotElevatorBo bo);

    /**
     * 修改电梯管理
     */
    Boolean updateByBo(IotElevatorBo bo);

    /**
     * 校验并批量删除电梯管理信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    IotElevatorVo selectByRegisteredCode(String numberCode);

    /**
     * 刷新电梯界面
     */
    Boolean refresh(Long elevatorId);

    TableDataInfo<SysOssVo> selectAllocatedList(IotElevatorBo bo, PageQuery pageQuery);

    TableDataInfo<SysOssVo> selectUnallocatedList(IotElevatorBo bo, PageQuery pageQuery);

    int deleteOss(IotElevatorOss elevatorOss);

    int deleteOssList(Long elevatorId, Long[] ossIds);

    int insertOssList(Long elevatorId, Long[] ossIds);

    List<IotElevatorVo> queryByIds(List<Long> elevatorIds);

    IotElevatorVo selectByIdentifyCode(String devid);
}
